package util

import (
	"github.com/PuerkitoBio/goquery"
	"net/http"
	URL "net/url"
)

func GetDocument(url string) (*goquery.Document, error) {
	resp, er := http.Get(url)
	if er != nil {
		return nil, er
	}
	defer resp.Body.Close()

	return goquery.NewDocumentFromReader(resp.Body)
}

func PostDocument(url string, data URL.Values) (*goquery.Document, error) {
	resp, er := http.PostForm(url, data)
	if er != nil {
		return nil, er
	}
	defer resp.Body.Close()

	return goquery.NewDocumentFromReader(resp.Body)
}

func GetJson(url string, v interface{}) (error) {
	resp, er := http.Get(url)
	if er != nil {
		return er
	}
	defer resp.Body.Close()

	return FromJsonReader(resp.Body, v)
}

func PostJson(url string, data URL.Values, v interface{}) (error) {
	resp, er := http.PostForm(url, data)
	if er != nil {
		return er
	}
	defer resp.Body.Close()

	return FromJsonReader(resp.Body, v)
}
